const puppeteer = require('puppeteer');  // 引入 puppeteer

const base = 'https://movie.douban.com/subject/';  // 详情页基础 url
const doubanId = '30221757';  // 预告片对应的 id

(async () => {
  const browser = await puppeteer.launch();  // 启动浏览器
  const page = await browser.newPage();  // 打开页面
  await page.goto(base + doubanId, {
    waitUntil: 'networkidle2'  // 只有2个网络连接时,认为跳转完成
  });  // 跳转到详情页

  const result = await page.evaluate(() => {
    const preWrap = document.querySelector('.related-pic-video');

    if (preWrap) {
      const preLink = preWrap.href;  // 预告播放页面跳转链接
      const preImg = preWrap.style.backgroundImage.split('\"')[1];  // 预告片封面图

      return {
        preLink,
        preImg
      }
    } else {
      return {}
    }
  });

  let videoSrc;
  // result 中有 preLink，则说明有预告片的视频跳转地址
  if (result.preLink) {
    await page.goto(result.preLink, {
      waitUntil: 'networkidle2'  // 只有2个网络连接时,认为跳转完成
    });  // 跳转到链接地址对应预告片视频页面

    videoSrc = await page.evaluate(() => {
      const video = document.querySelector(".vjs-tech source");
      if (video) {
        return video.src;
      } else {
        return '';
      }
    })
  }

  const data = { 
    videoSrc,  // 预告片视频地址
    doubanId,  // 预告片 id
    preImg: result.preImg  // 预告片封面图
  }

  await browser.close();  // 关闭浏览器
  process.send(data);  // 向子进程传递数据
  process.exit(0);  // 结束子进程并传递状态码
})();
